/*
 * @lc app=leetcode.cn id=1010 lang=cpp
 * @lcpr version=30204
 *
 * [1010] 总持续时间可被 60 整除的歌曲
 */


// @lcpr-template-start
using namespace std;
#include <algorithm>
#include <array>
#include <bitset>
#include <climits>
#include <deque>
#include <functional>
#include <iostream>
#include <list>
#include <queue>
#include <stack>
#include <tuple>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
// @lcpr-template-end
// @lc code=start
class Solution {
public:
    int numPairsDivisibleBy60(vector<int>& time) {
        vector<int> diff(61, 0);
        for (auto t : time){
            diff[t % 60]++;
        }

        int res = cal(diff[0]) + cal(diff[30]);
        for(int i = 1; i < 30; i++){
            res += diff[i] * diff[60-i];
        }
        return res;
    }

    int cal(int64_t len){
        return (len-1)*len / 2;
    }
};
// @lc code=end



/*
// @lcpr case=start
// [30,20,150,100,40]\n
// @lcpr case=end

// @lcpr case=start
// [60,60,60]\n
// @lcpr case=end

 */

